package shayu.seckill.scheduled;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
@Slf4j
@EnableScheduling
public class HelloSchedule {

    /**
     * 1.Spring 中6位组成，不允许第7位置的年
     * 2.在周几的位置，1-7代表周一到周日:mon-sun
     * 3.定时任务不应该阻塞，默认是阻塞的
     * 3.1 可以让业务运行以异步的方式，自己提交的线程池子
     * CompletableFuture.runAysnc()->{
     * xxxxx.hello
     * }
     * 3.2 支持定时任务线程池，设置TaskSchedulingProperties
     * spring.task.scheduling.pool.size-5
     * 3.3 让异步任务执行
     * 异步任务
     * 解决：使用异步+定时任务来完成定时任务不阻塞的
     */

    @Async
    @Scheduled(cron = "* * * ? * 5")
    public void hello() {
        log.info("异步任务he");
    }
}

